package com.lm.hutooltest;

import cn.hutool.core.date.*;
import cn.hutool.core.lang.Console;


/**
 * @Auther: Min.Liu
 * @Description:
 * @Date: Created in 10:06 2024/9/26
 */
public class DateUtilTest {
    public static void main(String[] args) {
        String s = "2012-07-04";
        System.out.println(s.length());
        System.out.println(s.substring(0, 10) + " " + s.substring(10));
        // 获取当前时间
        System.out.println("当前时间：" + DateUtil.now()); // 输出当前时间字符串
        // 解析日期时间字符串
//        String dateStr = "2012-07-0412:30:45";
       // DateTime dateTime = DateUtil.parse(dateStr);
        DateTime dateTime = DateUtil.parse(DateUtil.now());
        //DateTime.setUseJdkToStringStyle(true);
        System.out.println("解析日期时间字符串：" + dateTime); // 输出解析后的日期时间
        System.out.println( "----------------->");
        System.out.println("年===：" + DateUtil.dayOfYear(dateTime));
        System.out.println("年：" + DateUtil.year(dateTime));
        System.out.println("月：" + DateUtil.month(dateTime));
        System.out.println("周：" + DateUtil.dayOfWeekEnum(dateTime));
        System.out.println("月第几天：" + DateUtil.dayOfMonth(dateTime));
        System.out.println("分：" + DateUtil.minute(dateTime));
        System.out.println("时：" + DateUtil.hour(dateTime,true));
        System.out.println( "----------------->");

        System.out.println("年龄：" + DateUtil.ageOfNow(dateTime));
        // 格式化日期时间
        System.out.println("格式化当前时间：" + DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")); // 按指定格式输出当前时间

        System.out.println("格式化当前时间-默认：" + DateUtil.format(DateUtil.date(),"yyyy-MM-dd")); // 按指定格式输出当前时间
        System.out.println("格式化当前时间往前一年-默认：" + DateUtil.format(DateUtil.offset(DateUtil.date(), DateField.YEAR, -1),"yyyy-MM-dd")); // 按指定格式输出当前时间

        // 计算日期时间差
        String startDateStr = "2024-08-01 00:00:00";
        String endDateStr = "2024-08-04 12:30:45";
        DateTime parse = DateUtil.parse(startDateStr);
        System.out.println("---------------------->");
        System.out.println(parse.getTime());
        long betweenDay = DateUtil.between(DateUtil.parse(startDateStr), DateUtil.parse(endDateStr), DateUnit.DAY);
        System.out.println("两个日期之间的天数差：" + betweenDay); // 输出两个日期之间的天数差


        String formatBetween = DateUtil.formatBetween(DateUtil.parse(startDateStr), DateUtil.parse(endDateStr), BetweenFormatter.Level.DAY);
        System.out.println("格式化后的差：" + formatBetween);

        System.out.println("前一个日期是否小于后一个日期：" + DateUtil.parse(startDateStr).before(DateUtil.parse(endDateStr)));

        //每一次都在徘徊孤单中 坚强 每一次就算很受伤 也不闪泪光 我知道我一直有双隐形的翅膀 带我飞 飞过绝望
        //我终于翱翔 凝望梦想不害怕 追逐的年轻歌声多嘹亮 我终于看到 所有梦想都开花 那里有梦 我就飞多远吧

        // 日期时间偏移
        System.out.println("当前时间加一天：" + DateUtil.offsetDay(DateUtil.date(), 1)); // 输出当前时间加一天后的日期

        // 获取月份的第一天和最后一天
        System.out.println("当前月份的第一天：" + DateUtil.beginOfMonth(DateUtil.date())); // 输出当前月份的第一天
        System.out.println("当前月份的最后一天：" + DateUtil.endOfMonth(DateUtil.date())); // 输出当前月份的最后一天


    }
}
